﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Configuration;
using System.Data.SqlClient;
using System.Web.Configuration;
using TheBullysStore.Models.ModuloVentas.Propiedad;
namespace TheBullysStore.Models.ModuloVentas.Venta
{
    public class VentaDAO
    {
        public void registrarVenta(VentaBean venta) {
            try
            {
                String cadenaConfiguracion = ConfigurationManager.ConnectionStrings["TheBullysStore"].ConnectionString;
                SqlConnection sqlCon = new SqlConnection(cadenaConfiguracion);
                sqlCon.Open();
                string commandString = "INSERT INTO venta (Fecha_registro, Monto_Venta, Comision, fecha_venta_concretada, id_cliente, estado, Id_Propiedad) VALUES (GETDATE(),";
                commandString +=venta.MontoVenta + ", "+ venta.Comision+", CONVERT(DATETIME, '"+venta.FechaVentConcretada+"', 103), "+ venta.IdCliente +", 1, "+venta.IdPropiedad+")";
                System.Diagnostics.Debug.WriteLine("COM:" + commandString);
                SqlCommand sqlCmd = new SqlCommand(commandString, sqlCon);
                sqlCmd.ExecuteNonQuery();
                sqlCon.Close();
                System.Diagnostics.Debug.WriteLine("Bien");

                cadenaConfiguracion = ConfigurationManager.ConnectionStrings["TheBullysStore"].ConnectionString;
                sqlCon = new SqlConnection(cadenaConfiguracion);
                sqlCon.Open();
                commandString = "UPDATE propiedad_en_venta SET Estado = 2 WHERE  (id_propiedad = "+ venta.IdPropiedad   +")";
                sqlCmd = new SqlCommand(commandString, sqlCon);
                sqlCmd.ExecuteNonQuery();
                sqlCon.Close();
                System.Diagnostics.Debug.WriteLine("Bien");

            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine("ERROR:" + ex.ToString());
            }


            
        }

        public List<VentaBean> ListarVenta(VentaBean venta)
        {
            System.Diagnostics.Debug.WriteLine("-------------------------------------------->");

            try
            {
                List<VentaBean> listaVenta = new List<VentaBean>();
                String cadenaConfiguracion = ConfigurationManager.ConnectionStrings["TheBullysStore"].ConnectionString;

                SqlConnection sqlCon = new SqlConnection(cadenaConfiguracion);
                sqlCon.Open();

                string commandString = "select * from (select id_propiedad,id_vendedor from propiedad_en_venta group by id_propiedad,id_vendedor,PrecioBase,Rango) pv inner join (select Id_Propiedad,id_cliente,Fecha_registro,fecha_venta_concretada, Monto_Venta,estado  from venta)  v on(v.id_propiedad=pv.id_propiedad) inner join (select p.id_persona,p.Nombres+' '+p.Apellidos as NombreVendedor from persona p inner join cargo c on (p.Id_Cargo=c.Id_Cargo) where c.Id_Cargo=7) vd on (pv.id_vendedor=vd.id_persona) inner join (select p.id_cliente,p.Nombres+' '+p.Apellidos as NombreCliente from cliente p) vf on (v.id_cliente=vf.id_cliente) where v.estado=1";

                if (venta.IdVendedor > 0)
                {
                    commandString += " and pv.id_vendedor = " + venta.IdVendedor;
                }

                if (!string.IsNullOrEmpty(venta.FechaInicio))
                {
                    commandString += " AND v.Fecha_registro BETWEEN convert(datetime,'" + venta.FechaInicio + "',103)"
                                   + " AND convert(datetime,'" + venta.FechaFin + "',103)";
                }

                SqlCommand sqlCmd = new SqlCommand(commandString, sqlCon);
                SqlDataReader dataReader = sqlCmd.ExecuteReader();

                //System.Diagnostics.Debug.WriteLine("--------------------------------------------inicio");
                //0 id_propiedad
                //1 id_vendedor
                //2 Id_Propiedad ---
                //3 id_cliente
                //4 Fecha_registro
                //5 fecha_venta_concretada
                //6 Monto_Venta
                //7 estado
                //8 id_persona ---- DEL VENDEDODOR
                //9 NombreVendedor
                //10id_persona ---- ES = AL DEL CLIENTE
                //11NombreCliente
                while (dataReader.Read())
                {
                    VentaBean Venta = new VentaBean();
                    Venta.IdPropiedad = Convert.ToInt32(dataReader[0]);
                    Venta.IdVendedor = Convert.ToInt32(dataReader[1]);
                    Venta.IdCliente = Convert.ToInt32(dataReader[3]);
                    Venta.FechaRegistro = ((DateTime)dataReader[4]).ToString("dd/MM/yyyy");
                    Venta.FechaVentConcretada = ((DateTime)dataReader[5]).ToString("dd/MM/yyyy");
                    Venta.MontoVenta = Convert.ToDouble(dataReader[6]);
                    Venta.Estado = Convert.ToInt32(dataReader[7]);
                    Venta.NombreVendedor = Convert.ToString(dataReader[9]);
                    Venta.NombreCliente = Convert.ToString(dataReader[11]);

                    // consulta.Nro_Documento = (string)dataReader["Nro_Documento"];


                    listaVenta.Add(Venta);
                }
                //System.Diagnostics.Debug.WriteLine("--------------------------------------------fin consulta dao");
                //System.Diagnostics.Debug.WriteLine("--------------------------------------------fin consulta dao " + listaConsulta.Count());
                dataReader.Close();
                sqlCon.Close();
                return listaVenta;
            }
            catch (Exception e)
            {
                System.Diagnostics.Debug.WriteLine("-------------error----------------------fin consulta dao:" + e.ToString());
                venta.Conexion = e.ToString();
                return null;
            }

        }
        public List<BusquedaCliente> ListarClienteR(string nombre, string apellido)
        {
            //System.Diagnostics.Debug.WriteLine("-------------------------------------------->" + Nro_Documento_cliente_web);

            try
            {
                List<BusquedaCliente> listaConsulta = new List<BusquedaCliente>();
                String cadenaConfiguracion = ConfigurationManager.ConnectionStrings["TheBullysStore"].ConnectionString;

                SqlConnection sqlCon = new SqlConnection(cadenaConfiguracion);
                sqlCon.Open();
                string commandString = "SELECT id_cliente, Nombres, Apellidos, DNI FROM  cliente ";
                commandString = commandString + " WHERE ";
                commandString = commandString + " Nombres like '%" + nombre + "%'";
                commandString = commandString + " AND Apellidos like '%" + apellido + "%'";

                SqlCommand sqlCmd = new SqlCommand(commandString, sqlCon);
                SqlDataReader dataReader = sqlCmd.ExecuteReader();
                System.Diagnostics.Debug.WriteLine(commandString);
                //System.Diagnostics.Debug.WriteLine("--------------------------------------------inicio");

                while (dataReader.Read())
                {
                    BusquedaCliente Consulta = new BusquedaCliente();
                    Consulta.id_cliente = Convert.ToString(dataReader["id_cliente"]);
                    Consulta.Nombres = Convert.ToString(dataReader["nombres"]);
                    Consulta.Apellidos = Convert.ToString(dataReader["apellidos"]);
                    Consulta.DNI = Convert.ToString(dataReader["DNI"]);
                    listaConsulta.Add(Consulta);
                }
                dataReader.Close();
                sqlCon.Close();
                return listaConsulta;
            }
            catch (Exception e)
            {
                System.Diagnostics.Debug.WriteLine("-------------error----------------------fin consulta dao:" + e.ToString());
                return null;
            }


        }
        public List<BusquedaPropiedad> ListarPropiedadR(BusquedaPropiedad propiedad)
        {
            if (String.Equals(propiedad.id_cargo, "8") || String.Equals(propiedad.id_cargo, "4"))
            {
                try
                {
                    List<BusquedaPropiedad> listaConsulta = new List<BusquedaPropiedad>();
                    String cadenaConfiguracion = ConfigurationManager.ConnectionStrings["TheBullysStore"].ConnectionString;

                    SqlConnection sqlCon = new SqlConnection(cadenaConfiguracion);
                    sqlCon.Open();
                    string commandString = "SELECT Direccion, PrecioBase, Comision, AreaTotal, Estado, FechaRegistro, AreaConstruida, id_distrito, Nro_Documento_vendedor, Rango, Id_Dueno, NroDormitorios, TipoInmueble, Descripcion, NroBanos, X, Y, id_vendedor, url, id_propiedad  FROM propiedad_en_venta WHERE (Estado = 1)";
                    commandString += " AND (direccion LIKE '%" + propiedad.direccion + "%')";
                    SqlCommand sqlCmd = new SqlCommand(commandString, sqlCon);
                    System.Diagnostics.Debug.WriteLine("COM:" + commandString);
                    SqlDataReader dataReader = sqlCmd.ExecuteReader();
                    System.Diagnostics.Debug.WriteLine("Bien");
                    //System.Diagnostics.Debug.WriteLine("--------------------------------------------inicio");

                    while (dataReader.Read())
                    {
                        BusquedaPropiedad Consulta = new BusquedaPropiedad();
                        Consulta.id_propiedad = Convert.ToString(dataReader["id_propiedad"]);
                        Consulta.direccion = Convert.ToString(dataReader["direccion"]);
                        Consulta.precio = Convert.ToString(dataReader["precioBase"]);
                        Consulta.area = Convert.ToString(dataReader["areaTotal"]);
                        Consulta.fecha_registro = ((DateTime)dataReader["FechaRegistro"]).ToString("dd/MM/yyyy");
                        listaConsulta.Add(Consulta);
                        System.Diagnostics.Debug.WriteLine("Fecha Registro " + Consulta.fecha_registro);
                    }
                    dataReader.Close();
                    sqlCon.Close();
                    return listaConsulta;
                }
                catch (Exception e)
                {
                    System.Diagnostics.Debug.WriteLine("ERROR:" + e.ToString());
                    return null;
                }
            }
            else
            {
                try
                {
                    List<BusquedaPropiedad> listaConsulta = new List<BusquedaPropiedad>();
                    String cadenaConfiguracion = ConfigurationManager.ConnectionStrings["TheBullysStore"].ConnectionString;

                    SqlConnection sqlCon = new SqlConnection(cadenaConfiguracion);
                    sqlCon.Open();
                    //                SELECT        Direccion, PrecioBase, Comision, AreaTotal, Estado, FechaRegistro, AreaConstruida, id_distrito, Nro_Documento_vendedor, Rango, Id_Dueno, 
                    //                         NroDormitorios, TipoInmueble, Descripcion, NroBanos, X, Y, id_vendedor, url, id_propiedad
                    //FROM            propiedad_en_venta
                    //WHERE        (Estado = 1) AND (id_vendedor = 12) AND (TipoInmueble = 1)

                    string commandString = "SELECT Direccion, PrecioBase, Comision, AreaTotal, Estado, FechaRegistro, AreaConstruida, id_distrito, Nro_Documento_vendedor, Rango, Id_Dueno, NroDormitorios, TipoInmueble, Descripcion, NroBanos, X, Y, id_vendedor, url, id_propiedad  FROM propiedad_en_venta WHERE (Estado = 1)";
                    commandString += " AND (id_vendedor = " + propiedad.id_persona + ")  AND (direccion LIKE '%" + propiedad.direccion + "%')";
                    SqlCommand sqlCmd = new SqlCommand(commandString, sqlCon);
                    System.Diagnostics.Debug.WriteLine("COM:" + commandString);
                    SqlDataReader dataReader = sqlCmd.ExecuteReader();
                    System.Diagnostics.Debug.WriteLine("Bien");
                    //System.Diagnostics.Debug.WriteLine("--------------------------------------------inicio");

                    while (dataReader.Read())
                    {
                        BusquedaPropiedad Consulta = new BusquedaPropiedad();
                        Consulta.id_propiedad = Convert.ToString(dataReader["id_propiedad"]);
                        Consulta.direccion = Convert.ToString(dataReader["direccion"]);
                        Consulta.precio = Convert.ToString(dataReader["precioBase"]);
                        Consulta.area = Convert.ToString(dataReader["areaTotal"]);
                        Consulta.fecha_registro = ((DateTime)dataReader["FechaRegistro"]).ToString("dd/MM/yyyy");
                        listaConsulta.Add(Consulta);
                    }
                    //System.Diagnostics.Debug.WriteLine("--------------------------------------------fin consulta dao");
                    //System.Diagnostics.Debug.WriteLine("--------------------------------------------fin consulta dao " + listaConsulta.Count());
                    dataReader.Close();
                    sqlCon.Close();
                    return listaConsulta;
                }
                catch (Exception e)
                {
                    System.Diagnostics.Debug.WriteLine("ERROR:" + e.ToString());
                    return null;
                }
            }
            


        }
        public List<BusquedaVendedor> ListarVendedorR(string nombre, string apellido)
        {
            //System.Diagnostics.Debug.WriteLine("-------------------------------------------->" + Nro_Documento_cliente_web);

            try
            {
                List<BusquedaVendedor> listaConsulta = new List<BusquedaVendedor>();
                String cadenaConfiguracion = ConfigurationManager.ConnectionStrings["TheBullysStore"].ConnectionString;

                SqlConnection sqlCon = new SqlConnection(cadenaConfiguracion);
                sqlCon.Open();
                string commandString = "SELECT b.id_vendedor, a.nombres, a.apellidos FROM persona a, vendedor b";
                commandString = commandString + " WHERE b.id_vendedor = a.id_persona";
                commandString = commandString + " AND a.nombres like '%" + nombre + "%'";
                commandString = commandString + " AND a.apellidos like '%" + apellido + "%'";

                SqlCommand sqlCmd = new SqlCommand(commandString, sqlCon);
                SqlDataReader dataReader = sqlCmd.ExecuteReader();

                //System.Diagnostics.Debug.WriteLine("--------------------------------------------inicio");

                while (dataReader.Read())
                {
                    BusquedaVendedor Consulta = new BusquedaVendedor();
                    Consulta.id_vendedor = Convert.ToString(dataReader["id_vendedor"]);
                    Consulta.nombres = Convert.ToString(dataReader["nombres"]);
                    Consulta.apellidos = Convert.ToString(dataReader["apellidos"]);

                    listaConsulta.Add(Consulta);
                }
                //System.Diagnostics.Debug.WriteLine("--------------------------------------------fin consulta dao");
                //System.Diagnostics.Debug.WriteLine("--------------------------------------------fin consulta dao " + listaConsulta.Count());
                dataReader.Close();
                sqlCon.Close();
                return listaConsulta;
            }
            catch (Exception e)
            {
                System.Diagnostics.Debug.WriteLine("-------------error----------------------fin consulta dao:" + e.ToString());
                return null;
            }

        }

        public List<BusquedaVendedor> ListarVentaVendedor(BusquedaVendedor venta)
        {
            if (venta.IdCargo == 8)
            {
                try
                {
                    List<BusquedaVendedor> listaVenta = new List<BusquedaVendedor>();
                    String cadenaConfiguracion = ConfigurationManager.ConnectionStrings["TheBullysStore"].ConnectionString;

                    SqlConnection sqlCon = new SqlConnection(cadenaConfiguracion);
                    sqlCon.Open();
                    string commandString = "select * from persona a  where Id_Cargo=7 AND Estado = 1";
                     commandString +=  " and Nombres like '%" + venta.nombres + "%'";
                     commandString +=  " and Apellidos like '%" + venta.apellidos + "%'";
                     System.Diagnostics.Debug.WriteLine("COM: " + commandString);
                    SqlCommand sqlCmd = new SqlCommand(commandString, sqlCon);
                    SqlDataReader dataReader = sqlCmd.ExecuteReader();


                    while (dataReader.Read())
                    {
                        BusquedaVendedor Consulta = new BusquedaVendedor();
                        Consulta.IdDistrito = Convert.ToInt32(dataReader[0]);
                        Consulta.nombres = Convert.ToString(dataReader[1]);
                        Consulta.apellidos = Convert.ToString(dataReader[2]);
                        Consulta.Direccion = Convert.ToString(dataReader[3]);
                        Consulta.NroDocumentoPersona = Convert.ToString(dataReader[4]);
                        Consulta.Telefono = Convert.ToString(dataReader[5]);
                        Consulta.Estado = Convert.ToInt32(dataReader[6]);
                        Consulta.Correo = Convert.ToString(dataReader[7]);
                        Consulta.Genero = Convert.ToString(dataReader[8]);
                        Consulta.TipoDocumento = Convert.ToString(dataReader[9]);
                        Consulta.celular = Convert.ToString(dataReader[12]);
                        Consulta.IdCargo = Convert.ToInt32(dataReader[13]);
                        Consulta.IdPersona = Convert.ToInt32(dataReader[14]);

                        listaVenta.Add(Consulta);
                    }
                    dataReader.Close();
                    sqlCon.Close();
                    return listaVenta;
                }
                catch (Exception e)
                {
                    System.Diagnostics.Debug.WriteLine("ERROR SQL:" + e.ToString());
                    return null;
                }
            } else {
                try
                {
                    List<BusquedaVendedor> listaVenta = new List<BusquedaVendedor>();
                    String cadenaConfiguracion = ConfigurationManager.ConnectionStrings["TheBullysStore"].ConnectionString;

                    SqlConnection sqlCon = new SqlConnection(cadenaConfiguracion);
                    sqlCon.Open();
                    string commandString = "select * from persona a  where Id_Cargo=7 AND id_persona =" + venta.id_vendedor;
                    commandString = commandString + " and Nombres like '%" + venta.nombres + "%'";
                    commandString = commandString + " and Apellidos like '%" + venta.apellidos + "%'";
                    System.Diagnostics.Debug.WriteLine("COM: " + commandString);
                    SqlCommand sqlCmd = new SqlCommand(commandString, sqlCon);
                    SqlDataReader dataReader = sqlCmd.ExecuteReader();
                    while (dataReader.Read())
                    {
                        BusquedaVendedor Consulta = new BusquedaVendedor();
                        Consulta.IdDistrito = Convert.ToInt32(dataReader[0]);
                        Consulta.nombres = Convert.ToString(dataReader[1]);
                        Consulta.apellidos = Convert.ToString(dataReader[2]);
                        Consulta.Direccion = Convert.ToString(dataReader[3]);
                        Consulta.NroDocumentoPersona = Convert.ToString(dataReader[4]);
                        Consulta.Telefono = Convert.ToString(dataReader[5]);
                        Consulta.Estado = Convert.ToInt32(dataReader[6]);
                        Consulta.Correo = Convert.ToString(dataReader[7]);
                        Consulta.Genero = Convert.ToString(dataReader[8]);
                        Consulta.TipoDocumento = Convert.ToString(dataReader[9]);
                        Consulta.celular = Convert.ToString(dataReader[12]);
                        Consulta.IdCargo = Convert.ToInt32(dataReader[13]);
                        Consulta.IdPersona = Convert.ToInt32(dataReader[14]);
                        listaVenta.Add(Consulta);
                    }
                    dataReader.Close();
                    sqlCon.Close();
                    return listaVenta;
                }
                catch (Exception e)
                {
                    System.Diagnostics.Debug.WriteLine("ERROR SQL: " + e.ToString());
                    return null;
                }
            
            }
            


        }
        public List<VentaBean> ListarVentaMod(VentaBean venta)
        {
            List<VentaBean> listaVenta = new List<VentaBean>();

            String cadenaConfiguracion = ConfigurationManager.ConnectionStrings["TheBullysStore"].ConnectionString;

            SqlConnection sqlCon = new SqlConnection(cadenaConfiguracion);
            sqlCon.Open();

            string commandString0 = "UPDATE venta SET ";
            //commandString0 = commandString0 + "Direccion= '" + venta.Direccion + "', ";
            //commandString0 = commandString0 + "PrecioBase	= " + venta.PrecioBase + ", ";
            
            //commandString0 = commandString0 + "Comision= " + propiedad.Comision + ", ";
            
            //commandString0 = commandString0 + "AreaTotal= " + venta.AreaTotal + ", ";
            
            //commandString0 = commandString0 + "Estado= " + propiedad.Estado + ", ";
            //commandString0 = commandString0 + "FechaRegistro= '" + venta.FechaRegistro + "' ";
            
            //commandString0 = commandString0 + "AreaConstruida= " + propiedad.AreaConstruida + ", ";
            //commandString0 = commandString0 + "id_distrito= " + propiedad.id_distrito + ", ";
            //commandString0 = commandString0 + "Nro_Documento_vendedor= '" + propiedad.Nro_Documento_vendedor + "', ";
            //commandString0 = commandString0 + "Rango= " + propiedad.Rango + ", ";
            //commandString0 = commandString0 + "Id_Dueno= " + propiedad.Id_Dueno + ", ";
            //commandString0 = commandString0 + "NroDormitorios= " + propiedad.NroDormitorios + ", ";
            //commandString0 = commandString0 + "TipoInmueble= " + propiedad.TipoInmueble + ", ";
            //commandString0 = commandString0 + "Descripcion= '" + propiedad.Descripcion + "', ";
            //commandString0 = commandString0 + "NroBanos= " + propiedad.NroBanos + ", ";
            //commandString0 = commandString0 + "id_vendedor= " + propiedad.id_vendedor + " ";
            
            //commandString0 = commandString0 + "where id_propiedad = " + venta.id_propiedad + " ";

            //del nuevo
            commandString0 = commandString0 + "Monto_Venta = " + venta.MontoVenta + " ,";
            commandString0 = commandString0 + "Fecha_registro = '" + venta.FechaRegistro + "' ,";
            commandString0 = commandString0 + "fecha_venta_concretada = '" + venta.FechaVentConcretada + "' ,";
            commandString0 = commandString0 + "estado = " + venta.Estado + " ";

            commandString0 = commandString0 + "where id_propiedad = " + venta.IdPropiedad + " ";

            SqlCommand sqlCmd0 = new SqlCommand(commandString0, sqlCon);
            sqlCmd0.ExecuteNonQuery();
            //muestra la tabla despues de modificar
            // string commandString = "SELECT " +
            //"id_propiedad"
            //+ ",Direccion"
            //+ ",PrecioBase"
            //+ ",AreaTotal"
            //+ ",NroDormitorios"
            //+ ",NroBanos"
            //+ ",TipoInmueble"
            //+ ",Estado"
            //+ ",FechaRegistro"
            //+ ",id_distrito"
            //+ ",id_vendedor"
            //+ ",Nro_Documento_vendedor"
            //+ ",Id_Dueno "
            // + "FROM propiedad_en_venta where Estado=1 ";
            //string commandString = "select * from(select c.id_propiedad as IdPropiedad,c.Direccion as Direccion,c.PrecioBase as PrecioBase,c.AreaTotal as AreaTotal,c.FechaRegistro as FechaRegistro,d.nombre as Distrito,a.Nombres+' '+a.Apellidos as NombreVendedor,c.Id_Dueno as IdDueno, c.id_vendedor as IdVendedor,c.Estado as EstadoPropiedad from persona a inner join vendedor b on (a.id_persona= b.Id_vendedor) inner join propiedad_en_venta c on(b.Id_vendedor=c.id_vendedor) inner join distrito d on(a.id_distrito=d.id_distrito)where c.Estado=1) r inner join (select distinct (z.id_persona) as IdPropietario,z.Nombres+' '+z.Apellidos as NombreDueno from propiedad_en_venta x inner join (select id_persona from persona where Id_Cargo=10) y on(x.Id_Dueno=y.id_persona) inner join persona z on (y.id_persona=z.id_persona)) q on (r.IdDueno=q.IdPropietario) where EstadoPropiedad=1 and IdPropiedad=" + venta.IdPropiedad;

            string commandString = "select * from (select id_propiedad,id_vendedor from propiedad_en_venta group by id_propiedad,id_vendedor,PrecioBase,Rango) pv inner join (select Id_Propiedad,id_cliente,Fecha_registro,fecha_venta_concretada, Monto_Venta,estado  from venta)  v on(v.id_propiedad=pv.id_propiedad) inner join (select p.id_persona,p.Nombres+' '+p.Apellidos as NombreVendedor from persona p inner join cargo c on (p.Id_Cargo=c.Id_Cargo) where c.Id_Cargo=7) vd on (pv.id_vendedor=vd.id_persona) inner join (select p.id_cliente,p.Nombres+' '+p.Apellidos as NombreCliente from cliente p) vf on (v.id_cliente=vf.id_cliente) where v.estado=1 and pv.id_propiedad=" + venta.IdPropiedad;

            SqlCommand sqlCmd = new SqlCommand(commandString, sqlCon);
            SqlDataReader dataReader = sqlCmd.ExecuteReader();

            while (dataReader.Read())
            {

                //cliente. = (int)dataReader["idUsuario"];
                VentaBean Venta = new VentaBean();
                //(Descripcion,Lugar,Fecha,Hora,Estado,duracion_estimada,Id_Propiedad,id_persona,id_vendedor)
                //('probando ingresar','av. los alcanfores','12-12-2012','3:00',1,5,1,17,10)
                //-----------------------------del modificar antiguo------------------
                //Propiedad.id_propiedad = Convert.ToInt32(dataReader[0]);
                //Propiedad.Direccion = Convert.ToString(dataReader[1]);
                //Propiedad.PrecioBase = Convert.ToDouble(dataReader[2]);
                //Propiedad.AreaTotal = Convert.ToDouble(dataReader[3]);
                //Propiedad.NroDormitorios = Convert.ToInt32(dataReader[4]);
                //Propiedad.NroBanos = Convert.ToInt32(dataReader[5]);
                //Propiedad.TipoInmueble = Convert.ToInt32(dataReader[6]);
                //Propiedad.Estado = Convert.ToInt32(dataReader[7]);
                //Propiedad.FechaRegistro = ((DateTime)dataReader[8]).ToString("dd/MM/yyyy");
                //Propiedad.id_distrito = Convert.ToInt32(dataReader[9]);
                //Propiedad.id_vendedor = Convert.ToInt32(dataReader[10]);
                //Propiedad.Nro_Documento_vendedor = Convert.ToString(dataReader[11]);
                //Propiedad.Id_Dueno = Convert.ToInt32(dataReader[12]);
                //-----------------------------------------
                //Venta.id_propiedad = Convert.ToInt32(dataReader[0]);
                //Venta.Direccion = Convert.ToString(dataReader[1]);
                //Venta.PrecioBase = Convert.ToDouble(dataReader[2]);
                //Venta.AreaTotal = Convert.ToDouble(dataReader[3]);

                //Venta.FechaRegistro = ((DateTime)dataReader[4]).ToString("dd/MM/yyyy");
                //Venta.Distrito = Convert.ToString(dataReader[5]);
                //Venta.NombreVendedor = Convert.ToString(dataReader[6]);
                //Venta.IdDueno = Convert.ToInt32(dataReader[7]);
                //Venta.IdVendedor = Convert.ToInt32(dataReader[8]);
                //Venta.EstadoPropiedad = Convert.ToInt32(dataReader[9]);
                //Venta.IdPropietario = Convert.ToInt32(dataReader[10]);
                //Venta.NombreDueno = Convert.ToString(dataReader[11]);
                //-----------------------------------------
                Venta.IdPropiedad = Convert.ToInt32(dataReader[0]);
                Venta.IdVendedor = Convert.ToInt32(dataReader[1]);
                Venta.IdCliente = Convert.ToInt32(dataReader[3]);
                Venta.FechaRegistro = ((DateTime)dataReader[4]).ToString("dd/MM/yyyy");
                Venta.FechaVentConcretada = ((DateTime)dataReader[5]).ToString("dd/MM/yyyy");
                Venta.MontoVenta = Convert.ToDouble(dataReader[6]);
                Venta.Estado = Convert.ToInt32(dataReader[7]);
                Venta.NombreVendedor = Convert.ToString(dataReader[9]);
                Venta.NombreCliente = Convert.ToString(dataReader[11]);
                //-----------------------------------------
                //cita2.id_persona = (string)dataReader["Nro_Documento_persona"];
                //cita2.id_vendedor = (string)dataReader["Nro_Documento_vendedor"];


                listaVenta.Add(Venta);
            }
            dataReader.Close();
            sqlCon.Close();

            return listaVenta;
        }
        public string EliminarVenta(VentaBean venta)
        {
            try
            {
                String cadenaConfiguracion = ConfigurationManager.ConnectionStrings["TheBullysStore"].ConnectionString;

                SqlConnection sqlCon = new SqlConnection(cadenaConfiguracion);

                sqlCon.Open();

                string commandString = "UPDATE venta SET estado = 0 WHERE id_propiedad = " + venta.IdPropiedad + "";
                SqlCommand sqlCmd = new SqlCommand(commandString, sqlCon);
                sqlCmd.ExecuteNonQuery();

                sqlCon.Close();

                venta.Conexion = "Bien";
            }
            catch (Exception e)
            {
                String men = e.ToString();
                venta.Conexion = men;
            }



            try
            {
                String cadenaConfiguracion = ConfigurationManager.ConnectionStrings["TheBullysStore"].ConnectionString;

                SqlConnection sqlCon = new SqlConnection(cadenaConfiguracion);

                sqlCon.Open();
                //UPDATE propiedad_en_venta SET Estado = 1 WHERE  (id_propiedad = 1)
                string commandString = "UPDATE propiedad_en_venta SET Estado = 1 WHERE  (id_propiedad = " + venta.IdPropiedad + ")";
                SqlCommand sqlCmd = new SqlCommand(commandString, sqlCon);
                sqlCmd.ExecuteNonQuery();

                sqlCon.Close();

                venta.Conexion = "Bien";
            }
            catch (Exception e)
            {
                String men = e.ToString();
                venta.Conexion = men;
            }
            return venta.Conexion;
        }

        public List<ReporteVenta> generarReporteVenta(ReporteVenta venta)
        {
            
            try
            {   
                
                List<ReporteVenta> listaVenta = new List<ReporteVenta>();
                String cadenaConfiguracion = ConfigurationManager.ConnectionStrings["TheBullysStore"].ConnectionString;
                
                SqlConnection sqlCon = new SqlConnection(cadenaConfiguracion);
                sqlCon.Open();
                string commandString="";
                if (venta.variable == 1)
                {
                    commandString = "select v.Id_Propiedad,convert(varchar,v.Fecha_registro,103) as FechaRegistroVenta,v.Monto_Venta,convert(varchar,v.fecha_venta_concretada,103) as FechaVentaConcretada,tt.PrecioBase,tt.Inmuebles,tt.EstadoVenta,tt.NombreVendedor,c.Nombres+' '+c.Apellidos as NombreCliente from venta v inner join (select * from (select id_propiedad,PrecioBase,case TipoInmueble when 1 then 'Departamento' when 2 then 'Casa' when 3 then 'Casa de Playa' when 4 then 'Otros' end as Inmuebles, case Estado when 0 then 'no disponible' when 1 then 'en venta' when 2 then 'vendido' when 3 then 'solo registrado' end as EstadoVenta,id_vendedor, Id_Dueno from propiedad_en_venta ) t inner join (select p.id_persona,p.Nombres+' '+p.Apellidos as NombreVendedor from persona p inner join cargo c on (p.Id_Cargo=c.Id_Cargo) where c.Id_Cargo=7) rv on (t.id_vendedor=rv.id_persona)) tt on (v.Id_Propiedad=tt.id_propiedad) inner join cliente c on (v.id_cliente=c.id_cliente)  where v.estado=1 ";
                }
                if (venta.variable == 2)
                {
                    commandString = " select NombreVendedor,count(*) as CantidadPropiedadesVendidas,sum(Monto_Venta) as MontoObtenido from venta v inner join (select * from (select id_propiedad,PrecioBase,case TipoInmueble when 1 then 'Departamento' when 2 then 'Casa' when 3 then 'Casa de Playa' when 4 then 'Otros' end as Inmuebles, case Estado when 0 then 'no disponible' when 1 then 'en venta' when 2 then 'vendido' when 3 then 'solo registrado' end as EstadoVenta,id_vendedor, Id_Dueno from propiedad_en_venta) t inner join (select p.id_persona,p.Nombres+' '+p.Apellidos as NombreVendedor from persona p inner join cargo c on (p.Id_Cargo=c.Id_Cargo) where c.Id_Cargo=7) rv on (t.id_vendedor=rv.id_persona)) tt on(v.Id_Propiedad=tt.id_propiedad) inner join cliente c on (v.id_cliente=c.id_cliente) where EstadoVenta='vendido' group by NombreVendedor order  by CantidadPropiedadesVendidas,MontoObtenido desc ";
                }
                if (venta.variable == 3)
                {
                    commandString = "select NombreVendedor,count(*) as CantidadPropiedadesPorVender,sum(Monto_Venta) as MontoPorObtener from venta v inner join (select * from (select id_propiedad,PrecioBase,case TipoInmueble when 1 then 'Departamento' when 2 then 'Casa' when 3 then 'Casa de Playa' when 4 then 'Otros' end as Inmuebles, case Estado when 0 then 'no disponible' when 1 then 'en venta' when 2 then 'vendido' when 3 then 'solo registrado' end as EstadoVenta,id_vendedor, Id_Dueno from propiedad_en_venta) t inner join (select p.id_persona,p.Nombres+' '+p.Apellidos as NombreVendedor from persona p inner join cargo c on (p.Id_Cargo=c.Id_Cargo) where c.Id_Cargo=7) rv on (t.id_vendedor=rv.id_persona)) tt on(v.Id_Propiedad=tt.id_propiedad) inner join cliente c on (v.id_cliente=c.id_cliente) where EstadoVenta='en venta' group by NombreVendedor order  by CantidadPropiedadesPorVender,MontoPorObtener desc ";
                }
                if (venta.variable == 4)
                {
                    commandString = "select v.Id_Propiedad,convert(varchar,v.Fecha_registro,103) as FechaRegistroVenta,v.Monto_Venta,convert(varchar,v.fecha_venta_concretada,103) as FechaVentaConcretada,tt.PrecioBase,tt.Inmuebles,tt.EstadoVenta,tt.NombreVendedor,tt.ComisionDeVendedor,c.Nombres+' '+c.Apellidos as NombreCliente from venta v inner join (select * from (select id_propiedad,PrecioBase,case TipoInmueble when 1 then 'Departamento' when 2 then 'Casa' when 3 then 'Casa de Playa' when 4 then 'Otros' end as Inmuebles, case Estado when 0 then 'no disponible' when 1 then 'en venta' when 2 then 'vendido' when 3 then 'solo registrado' end as EstadoVenta,id_vendedor, Id_Dueno , PrecioBase*Comision as ComisionDeVendedor from propiedad_en_venta) t inner join (select p.id_persona,p.Nombres+' '+p.Apellidos as NombreVendedor from persona p inner join cargo c on (p.Id_Cargo=c.Id_Cargo) where c.Id_Cargo=7) rv on (t.id_vendedor=rv.id_persona)) tt on(v.Id_Propiedad=tt.id_propiedad) inner join cliente c on (v.id_cliente=c.id_cliente)  where v.estado=1 order  by v.Monto_Venta desc ";
                }
                if (venta.variable == 5)
                {
                    commandString = "select NombreVendedor,count(*) as CantidadPropiedadesVendidas,sum(Monto_Venta) as MontoObtenido ,SUM(Comision*Monto_Venta) as ComisionDeVendedor from venta v inner join (select * from (select id_propiedad,PrecioBase,Comision*PrecioBase as ComisionDeVendedor,case TipoInmueble when 1 then 'Departamento' when 2 then 'Casa' when 3 then 'Casa de Playa' when 4 then 'Otros' end as Inmuebles, case Estado when 0 then 'no disponible' when 1 then 'en venta' when 2 then 'vendido' when 3 then 'solo registrado' end as EstadoVenta,id_vendedor, Id_Dueno from propiedad_en_venta) t inner join (select p.id_persona,p.Nombres+' '+p.Apellidos as NombreVendedor from persona p inner join cargo c on (p.Id_Cargo=c.Id_Cargo) where c.Id_Cargo=7) rv on (t.id_vendedor=rv.id_persona)) tt on(v.Id_Propiedad=tt.id_propiedad) inner join cliente c on (v.id_cliente=c.id_cliente) where EstadoVenta='vendido' group by NombreVendedor order  by CantidadPropiedadesVendidas,MontoObtenido desc ";
                }
                if (venta.variable == 6)
                {
                    commandString = "select NombreVendedor,count(*) as CantidadPropiedadesPorVender,sum(Monto_Venta) as MontoPorObtener, SUM(Comision*Monto_Venta) as ComisionPorObtener  from venta v inner join (select * from (select id_propiedad,PrecioBase,Comision*PrecioBase as ComisionDeVendedor,case TipoInmueble when 1 then 'Departamento' when 2 then 'Casa' when 3 then 'Casa de Playa' when 4 then 'Otros' end as Inmuebles, case Estado when 0 then 'no disponible' when 1 then 'en venta' when 2 then 'vendido' when 3 then 'solo registrado' end as EstadoVenta,id_vendedor, Id_Dueno from propiedad_en_venta) t inner join (select p.id_persona,p.Nombres+' '+p.Apellidos as NombreVendedor from persona p inner join cargo c on (p.Id_Cargo=c.Id_Cargo) where c.Id_Cargo=7) rv on (t.id_vendedor=rv.id_persona)) tt on(v.Id_Propiedad=tt.id_propiedad) inner join cliente c on (v.id_cliente=c.id_cliente) where EstadoVenta='en venta' group by NombreVendedor order  by CantidadPropiedadesPorVender,MontoPorObtener desc ";
                }

                SqlCommand sqlCmd = new SqlCommand(commandString, sqlCon);
                SqlDataReader dataReader = sqlCmd.ExecuteReader();

                while (dataReader.Read())
                {
                    ReporteVenta Venta = new ReporteVenta();
                    //Venta.IdPropiedad = Convert.ToInt32(dataReader[0]);
                    //Venta.IdVendedor = Convert.ToInt32(dataReader[1]);
                    //Venta.IdCliente = Convert.ToInt32(dataReader[3]);
                    //Venta.FechaRegistro = ((DateTime)dataReader[4]).ToString("dd/MM/yyyy");
                    //Venta.FechaVentConcretada = ((DateTime)dataReader[5]).ToString("dd/MM/yyyy");
                    //Venta.MontoVenta = Convert.ToDouble(dataReader[6]);
                    //Venta.Estado = Convert.ToInt32(dataReader[7]);
                    //Venta.NombreVendedor = Convert.ToString(dataReader[9]);
                    //Venta.NombreCliente = Convert.ToString(dataReader[11]);
                    if (venta.variable == 1)
                    {
                        Venta.IdPropiedad = Convert.ToInt32(dataReader[0]);
                        Venta.FechaRegistroVenta = Convert.ToString(dataReader[1]);
                        Venta.MontoVenta = Convert.ToDouble(dataReader[2]);
                        Venta.FechaVentaConcretada = Convert.ToString(dataReader[3]);
                        Venta.PrecioBase = Convert.ToDouble(dataReader[4]);
                        Venta.Inmuebles = Convert.ToString(dataReader[5]);
                        Venta.EstadoVenta = Convert.ToString(dataReader[6]);
                        Venta.NombreVendedor = Convert.ToString(dataReader[7]);
                        Venta.NombreCliente = Convert.ToString(dataReader[8]);
                    }
                    if (venta.variable == 2)
                    {
                        Venta.NombreVendedor = Convert.ToString(dataReader[0]);
                        Venta.CantidadPropiedadesVendidas = Convert.ToInt32(dataReader[1]);
                        Venta.MontoObtenido = Convert.ToDouble(dataReader[2]);
                    }
                    if (venta.variable == 3)
                    {
                        Venta.NombreVendedor = Convert.ToString(dataReader[0]);
                        Venta.CantidadPropiedadesPorVender = Convert.ToInt32(dataReader[1]);
                        Venta.MontoPorObtener = Convert.ToDouble(dataReader[2]);
                    }
                    if (venta.variable == 4)
                    {
                        Venta.IdPropiedad = Convert.ToInt32(dataReader[0]);
                        Venta.FechaRegistroVenta = Convert.ToString(dataReader[1]);
                        Venta.MontoVenta = Convert.ToDouble(dataReader[2]);
                        Venta.FechaVentaConcretada = Convert.ToString(dataReader[3]);
                        Venta.PrecioBase = Convert.ToDouble(dataReader[4]);
                        Venta.Inmuebles = Convert.ToString(dataReader[5]);
                        Venta.EstadoVenta = Convert.ToString(dataReader[6]);
                        Venta.NombreVendedor = Convert.ToString(dataReader[7]);
                        Venta.ComisionDeVendedor = Convert.ToDouble(dataReader[8]);
                        Venta.NombreCliente = Convert.ToString(dataReader[9]);
                    }
                    if (venta.variable == 5)
                    {
                        Venta.NombreVendedor = Convert.ToString(dataReader[0]);
                        Venta.CantidadPropiedadesVendidas = Convert.ToInt32(dataReader[1]);
                        Venta.MontoObtenido = Convert.ToDouble(dataReader[2]);
                        Venta.ComisionDeVendedor  = Convert.ToDouble(dataReader[3]);
                    }
                    if (venta.variable == 6)
                    {
                        Venta.NombreVendedor = Convert.ToString(dataReader[0]);
                        Venta.CantidadPropiedadesPorVender = Convert.ToInt32(dataReader[1]);
                        Venta.MontoPorObtener = Convert.ToDouble(dataReader[2]);
                        Venta.ComisionPorObtener = Convert.ToDouble(dataReader[3]);
                    }

                    listaVenta.Add(Venta);
                }

                dataReader.Close();
                sqlCon.Close();
                return listaVenta;
            }
            catch (Exception e)
            {
                System.Diagnostics.Debug.WriteLine("-------------error----------------------fin consulta dao:" + e.ToString());
                venta.Conexion = e.ToString();
                return null;
            }

        }


    }
}